---@diagnostic disable: lowercase-global, undefined-global, trailing-space
-- 本地化

local modid = 'ShadowFieldExciter' -- 定义模组的唯一标识符

-- 定义一个包含不同语言本地化文本的表
local LANGS = {
    -- 中文本地化设置
    ['zh'] = {
        name = '影场激发器', -- 模组在中文环境下的名称
        description = '自动将在地上的物品进行放进容器', -- 模组在中文环境下的描述
        config = { -- 模组在中文环境下的配置选项
            -- 单机配置项格式示例:
            -- {'设置的id','设置的名称',默认值,{
            --     {选项描述, 选项值},
            --     {选项描述, 选项值}
            -- }},
            -- 或者仅包含标题:
            -- {'标题'}
            {modid..'_lang','游戏内语言','游戏内语言','cn',{ -- 语言选择配置项
                {'简体中文','cn'}, -- 选项：简体中文，值为 'cn'
                {'English','en'}    -- 选项：English，值为 'en'
            }},
            {modid..'_PickInterval','拾取间隔','间隔越小,拾取越快,但是性能消耗也会越大,单位秒',0.5,{ -- 拾取间隔配置项
                {'0.125s',0.125}, -- 选项：0.125秒
                {'0.25s',0.25},   -- 选项：0.25秒
                {'0.5s',0.5},    -- 选项：0.5秒 (默认值)
                {'1s',1},        -- 选项：1秒
                {'2s',2}         -- 选项：2秒
            }},
            {modid..'_PickRadius','拾取半径','拾取范围的半径,单位地皮格子,范围调太大可能会对性能的有影响,但未经过准确测试,请酌情调整!',3,{ -- 拾取半径配置项
                {'1.5格地皮',1.5}, -- 选项：1.5地皮格
                {'2格地皮',2},     -- 选项：2地皮格
                {'2.5格地皮',2.5}, -- 选项：2.5地皮格
                {'3格地皮',3},     -- 选项：3地皮格 (默认值)
                {'3.5格地皮',3.5}, -- 选项：3.5地皮格
                {'4格地皮',4},     -- 选项：4地皮格
                {'4.5格地皮',4.5}, -- 选项：4.5地皮格
                {'5格地皮',5},     -- 选项：5地皮格
                {'6格地皮',6},     -- 选项：6地皮格
                {'7格地皮',7},     -- 选项：7地皮格
                {'8格地皮',8},     -- 选项：8地皮格
                {'9格地皮',9},     -- 选项：9地皮格
                {'10格地皮',10}    -- 选项：10地皮格
            }},
            {modid..'_LightRadius','照明半径','照明范围的半径,单位地皮格子',2,{ -- 照明半径配置项
                {'关闭光源',0},     -- 选项：关闭光源
                {'1.5格地皮',1.5}, -- 选项：1.5地皮格
                {'2格地皮',2},     -- 选项：2地皮格 (默认值)
                {'2.5格地皮',2.5}, -- 选项：2.5地皮格
                {'3格地皮',3},     -- 选项：3地皮格
                {'3.5格地皮',3.5}, -- 选项：3.5地皮格
                {'4格地皮',4},     -- 选项：4地皮格
                {'4.5格地皮',4.5}, -- 选项：4.5地皮格
                {'5格地皮',5},     -- 选项：5地皮格
                {'6格地皮',6},     -- 选项：6地皮格
                {'7格地皮',7},     -- 选项：7地皮格
                {'8格地皮',8},     -- 选项：8地皮格
                {'9格地皮',9},     -- 选项：9地皮格
                {'10格地皮',10}    -- 选项：10地皮格
            }},
            {modid..'_HarvestCookpot','收获烹饪锅','是否收集烹饪锅完成的料理',false,{ -- 收获烹饪锅配置项
                {'否',false}, -- 选项：否 (默认值)
                {'是',true}   -- 选项：是 
            }},
        }
    },
    -- 英文本地化设置
    ['en'] = {
        name = 'Shadow Field Exciter', -- 模组在英文环境下的名称
        description = 'Automatically place items on the ground into the container', -- 模组在英文环境下的描述
        config = { -- 模组在英文环境下的配置选项
            {modid..'_lang','language in game','choose language in game','en',{ -- 语言选择配置项
                {'简体中文','cn'}, -- 选项：简体中文，值为 'cn'
                {'English','en'}    -- 选项：English，值为 'en' (默认值)
            }},
            {modid..'_PickInterval','Pick Interval','The smaller the interval, the faster the pick, but the greater the performance cost (in seconds)',0.5,{ -- 拾取间隔配置项
                {'0.125s',0.125}, -- 选项：0.125s
                {'0.25s',0.25},   -- 选项：0.25s
                {'0.5s',0.5},    -- 选项：0.5s (默认值)
                {'1s',1},        -- 选项：1s
                {'2s',2}         -- 选项：2s
            }},
            {modid..'_PickRadius','Pick Radius','Radius of the pickup area (in ground tiles),Setting the range too wide may have an impact on performance, but it has not been accurately tested. Please adjust it as appropriate!',3,{ -- 拾取半径配置项
                {'1.5 Tiles',1.5}, -- 选项：1.5 Tiles
                {'2 Tiles',2},     -- 选项：2 Tiles
                {'2.5 Tiles',2.5}, -- 选项：2.5 Tiles
                {'3 Tiles',3},     -- 选项：3 Tiles
                {'3.5 Tiles',3.5}, -- 选项：3.5 Tiles
                {'4 Tiles',4},     -- 选项：4 Tiles (默认值)
                {'4.5 Tiles',4.5}, -- 选项：4.5 Tiles
                {'5 Tiles',5},     -- 选项：5 Tiles
                {'6 Tiles',6},   -- 选项：6 Tiles
                {'7 Tiles',7},     -- 选项：7 Tiles
                {'8 Tiles',8},     -- 选项：8 Tiles
                {'9 Tiles',9},     -- 选项：9 Tiles
                {'10 Tiles',10}    -- 选项：10 Tiles
            }},
            {modid..'_LightRadius','Light Radius','Radius of the lighting area (in ground tiles)',2,{ -- 照明半径配置项
                {'Close The Light',0}, -- 选项：Close The Light
                {'1.5 Tiles',1.5},   -- 选项：1.5 Tiles
                {'2 Tiles',2},       -- 选项：2 Tiles (默认值)
                {'2.5 Tiles',2.5},   -- 选项：2.5 Tiles
                {'3 Tiles',3},       -- 选项：3 Tiles
                {'3.5 Tiles',3.5},   -- 选项：3.5 Tiles
                {'4 Tiles',4},       -- 选项：4 Tiles
                {'4.5 Tiles',4.5},   -- 选项：4.5 Tiles
                {'5 Tiles',5},       -- 选项：5 Tiles
                {'6 Tiles',6},       -- 选项：6 Tiles
                {'7 Tiles',7},       -- 选项：7 Tiles
                {'8 Tiles',8},       -- 选项：8 Tiles
                {'9 Tiles',9},       -- 选项：9 Tiles
                {'10 Tiles',10}      -- 选项：10 Tiles
            }},
            {modid..'_HarvestCookpot','Harvest Cookpot','Whether to collect the completed dishes cooked by the cookpot.',false,{ -- 收获烹饪锅配置项
                {'No',false}, -- 选项：No (默认值)
                {'Yes',true}   -- 选项：Yes 
            }},
        }
    }
}

-- 根据游戏当前的语言环境 (locale 全局变量) 自动选择使用的语言配置
-- 如果是 'zh' 或 'zhr' (简体中文)，则使用 'zh'，否则使用 'en'
 local cur = (locale == 'zh' or locale == 'zhr') and 'zh' or 'en'

-- mod相关信息
version = '0.92' -- 模组的版本号
author = '灵泽·开心的Key & Hazuki Yuuame' -- 模组的作者信息
forumthread = '' -- 模组在 Klei 官方论坛上的讨论帖链接 (可选)
api_version = 6 -- 模组使用的游戏 API 版本，确保与游戏版本兼容 (DS/RoG 使用 6)
priority = 0 -- 模组的加载优先级，数值越低加载越晚，默认为 0

dst_compatible = false -- 标记此模组不兼容 Don't Starve Together (联机版)
dont_starve_compatible = true -- 标记此模组兼容 Don't Starve (单机版)
reign_of_giants_compatible = true -- 标记此模组兼容 Reign of Giants DLC (单机版 DLC)
shipwrecked_compatible = true -- 标记此模组兼容 Shipwrecked DLC (单机版 DLC)
hamlet_compatible = true -- 标记此模组兼容 Hamlet DLC (单机版 DLC)

icon_atlas = "images/modicon.xml" -- 指向模组图标的图集文件 (.xml)
icon = "modicon.tex" -- 指向模组图标的纹理文件 (.tex)

-- 以下是根据上面选择的语言 (cur) 自动配置的模组信息
name = LANGS[cur].name -- 设置模组在游戏模组列表中显示的名称
description = version..'\n'..LANGS[cur].description -- 设置模组在游戏模组列表中显示的描述，包含版本号和语言对应的描述



-- 从 LANGS 表中获取当前语言对应的配置表，如果不存在则使用空表
local config = LANGS[cur].config or {}
-- 创建一个空表，用于存储最终格式化后的配置选项
local _configuration_options = {}
-- 遍历从 LANGS 中获取的原始配置表 (config)
for i = 1, #config do
    -- 创建一个临时表，用于存储当前配置项的下拉选项 (如果存在)
    local options = {}
    -- 检查原始配置项定义中是否存在选项列表 (即 config[i][5] 是否存在)
    if config[i][5] then
        -- 如果存在选项列表，则遍历这个列表
        for k = 1, #config[i][5] do
            -- 将原始选项 {描述, 值} 转换为游戏配置菜单所需的格式 {description = 描述, data = 值}
            options[k] = {description = config[i][5][k][1], data = config[i][5][k][2]}
        end
    end
    -- 将当前配置项转换为游戏配置菜单所需的最终格式，并存入 _configuration_options 表
    _configuration_options[i] = {
        name = config[i][1], -- 配置项的内部名称 (ID)
        label = config[i][2], -- 配置项在菜单中显示的标签文本
        hover = config[i][3] or '', -- 鼠标悬停在配置项上时显示的提示文本，如果原始定义中没有则为空字符串
        default = config[i][4] or false, -- 配置项的默认值，如果原始定义中没有则为 false
        -- 配置项的选项列表
        -- 如果 options 表中有内容 (即 #options > 0)，则使用转换后的 options 表
        -- 否则，提供一个默认的空选项，这通常用于标题行或者没有下拉选项的配置
        options = #options>0 and options or {{description = "", data = false}},
    }
end

-- 将处理完成的配置选项表赋值给全局变量 configuration_options
-- 游戏会读取这个全局变量来生成模组的配置菜单
configuration_options = _configuration_options
